﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TA.Turbo.Controls
{
	/// <summary>
	/// Has options which specify how a <see cref="Repeater"/> performs paging on a grouped set of entries.
	/// </summary>
	public enum GroupedPagingMode
	{
		/// <summary>
		/// Entries are filtered by page, then grouped.
		/// </summary>
		/// <remarks>
		/// This is chosen by default. Fastest method; does not require all entries to be loaded since a sub-set of entries inside a paging window 
		/// can be grouped and displayed without having to load all other entries.
		/// </remarks>
		PageEntriesThenGroup = 0,
		/// <summary>
		/// Entries are grouped and then filtered by page.
		/// </summary>
		/// <remarks>
		/// This will load all entries (regardless of the current page), group them and only then filter them by page. 
		/// This is not recommended on long data sets.
		/// </remarks>
		GroupThenPageEntries = 1,
		/// <summary>
		/// Entries are grouped and then the top-level groups are filtered by page.
		/// </summary>
		/// <remarks>
		/// This will load all entries (regardless of the current page), group them and then filter 
		/// the top-level groups by page. 
		/// This is not recommended on long data sets.
		/// </remarks>
		GroupThenPageTopGroups = 2,
	}
}
